﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Recursos.Model;
using System.Globalization;

namespace Recursos.View
{
    public partial class PeriodoView : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            var userSecurity = ((Usuario)Session["UserLogged"]);
            if (userSecurity == null)
                Response.Redirect("~/NoAccess.aspx");
            var permisos = new PermisosModel();
            if (!Page.IsPostBack && userSecurity != null && permisos.obtenerRolUsuario(userSecurity.Cedula).Equals("Administrador"))
                PopulateDropDown();

            else if (userSecurity == null || !permisos.obtenerRolUsuario(userSecurity.Cedula).Equals("Administrador"))
            {
                Response.Redirect("~/NoAccess.aspx");
            }
        }

        protected void CrearPeriodo(object sender, EventArgs e)
        {
            if (TextBox1.Text.Equals("") || TextBox2.Text.Equals("") || txtdiashabiles.Text.Equals(""))
                WebMsgBox.Show("Complete la información para crear un périodo","Creación de Periodos");
            else
            {
                var periodo = new PeriodoModel();
                string hinicio = TextBox1.Text;
                string hfinal = TextBox2.Text;
                var c = new CultureInfo("es-Es");
                var fechainicio = Convert.ToDateTime(hinicio, c);
                var fechafinal = Convert.ToDateTime(hfinal, c);
                if (fechainicio > fechafinal)
                {
                    WebMsgBox.Show("El periodo "+  DropDownListPeriodo.SelectedItem.Text.ToString() +" "+DropDownListModalidad.SelectedItem.Text.ToString() +" "+txtaño.Text+ " cuenta con fechas inválidas. No se realizo la inserción","Creación de Periodos");
                   
                    return;
                }
                    

                var resultado = periodo.CrearPeriodo(fechainicio, fechafinal, int.Parse(txtaño.Text),
                                                     int.Parse(DropDownListPeriodo.SelectedValue),
                                                     int.Parse(DropDownListModalidad.SelectedValue),
                                                     int.Parse(txtdiashabiles.Text));
                if (resultado == true)
                    WebMsgBox.Show("Periodo "+  DropDownListPeriodo.SelectedItem.Text.ToString() +" "+DropDownListModalidad.SelectedItem.Text.ToString() +" "+txtaño.Text+  " creado con éxito", "Creación de Periodos");
                else
                    WebMsgBox.Show("El periodo "+  DropDownListPeriodo.SelectedItem.Text.ToString() +" "+DropDownListModalidad.SelectedItem.Text.ToString() +" "+txtaño.Text+  " esta duplicado. No se realizo la inserción", "Creación de Periodos");
            }
        }

        protected void PopulateDropDown()
        {
            cargarModalidad();
            
        }
        protected void cargarModalidad()
        {
            var modalidad = new ModalidadModel();
            DropDownListModalidad.DataSource = modalidad.CargarModalidad();
            DropDownListModalidad.DataTextField = "Nombre";
            DropDownListModalidad.DataValueField = "id";
            DropDownListModalidad.DataBind();
        }
    }
}